OVERVIEW
  Tclmidi is language designed for creating and editing standard
MIDI files.  With the proper device interface it will also play
and record MIDI files.  Since tclmidi is a language supporting
function calls, recursion and conditionals, you can use these
features for editing, sequencing and writing complex scripts.
The brave might even want to try their hand at algorithmic
composition.
  The basis of tclmidi is John Ousterhout's popular TCL language.
tclmidi adds a few new commands specific to manipulating MIDI
files, and playing/recording them.  You'll need to have TCL-7.4
installed on your system to build tclmidi (I don't know if TCL-7.5 will
work).
  I've tried to be POSIX complient while writing tclmidi.  It has
been built on numerous machines and should compile on any Unix
like machine with a C++ compiler.
  Tclmidi comes with a device driver to interface with a few types of
MIDI cards and also support for using your serial port as a MIDI
interface.  Supported cards include MPU401, MQX32, Gravis UltraSound
and SoundBlaster (though both the GUS and SB support is limited to the
MIDI ports, the driver does not yet use these board to generate their
own sounds - the SB hasn't been tested much either).  It will also support
some features of the different cards, including the SMPTE support found
on the MQX32.
  The driver tries to be OS independent too.  90% of the driver is
completely portable, only the remaining 10% needs to be rewritten to
support a new UNIX varient.  This distribution comes with support for
BSD/OS, Linux, FreeBSD, NetBSD and Unixware (though the Unixware driver
isn't completely tested).  These five cover a wide range of systems and
one should make a good basis for a port to a new system.
